﻿
Public Class frmListadoSeguros
    Inherits frmMaster

    Private m_dtSegurosAuto As DataTable

    Protected Property dtSegurosAuto() As DataTable
        Get
            If m_dtSegurosAuto Is Nothing Then
                m_dtSegurosAuto = New DataTable()

                m_dtSegurosAuto.Columns.Add("NroSeguro")
                m_dtSegurosAuto.Columns.Add("Patente")
                m_dtSegurosAuto.Columns.Add("TipoVehiculo")
                m_dtSegurosAuto.Columns.Add("Marca")
                m_dtSegurosAuto.Columns.Add("Modelo")
                m_dtSegurosAuto.Columns.Add("Anno")
            End If

            Return m_dtSegurosAuto
        End Get
        Set(ByVal value As DataTable)
            m_dtSegurosAuto = value
        End Set
    End Property

    Protected Overloads Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            txtUsrMail.Attributes.Add("style", "text-transform: lowercase")
            txtDomMail.Attributes.Add("style", "text-transform: lowercase")

            If RUT <> "" Then
                lblRUTCliente.Text = RUTCliente
                lblNombreCliente.Text = NombreCliente

                If Email <> "" Then
                    Dim sMail() As String = Email.Split("@")

                    txtUsrMail.Text = sMail(0)
                    txtDomMail.Text = sMail(1)
                End If
            End If

            lblRUTCliente.UpdateAfterCallBack = True
            lblNombreCliente.UpdateAfterCallBack = True
            txtUsrMail.UpdateAfterCallBack = True
            txtDomMail.UpdateAfterCallBack = True

            'EncontrarDatos()
            LimpiarDatos()

            CargarSegurosByRUT()
        End If
    End Sub

    Private Sub CargarSegurosByRUT()
        CargarSegurosByRUT(RUT, dgSeguros)
    End Sub

    Private Sub CargarSegurosByRUT(ByVal RUT As String, ByVal Grilla As Anthem.DataGrid)
        BuscarSegurosByRUT(RUT)

        Grilla.DataSource = Nothing
        Grilla.DataBind()
        Grilla.UpdateAfterCallBack = True

        If Not dtSegurosAuto Is Nothing Then
            Grilla.DataSource = dtSegurosAuto
            Grilla.DataBind()

            Grilla.UpdateAfterCallBack = True
        End If
    End Sub

    Private Sub EncontrarDatos()
        Dim rp As DotNetResponse.SQLPersistence

        rp = New DotNetResponse.SQLPersistence

        rp.StoredProcedure = "SP_GET_PRUEBA"

        ExecuteSP(rp, False, True)

        If Not rp.Errores And rp.TieneDatos Then
            For Each dr As DataRow In rp.DtTable.Rows
                Dim CltSRM As SRM.CLT0 = New SRM.CLT0("U062")

                'L001
                Dim drPrdCLT() As DataRow = CltSRM.ObtenerProductosCliente(dr(0)).Select("LlaveProducto LIKE '120%'")

                For Each drProd As DataRow In drPrdCLT
                    Dim ScsSRM As SRM.SCS0 = New SRM.SCS0("U067")
                    Dim MiRespuesta() As String

                    '44
                    MiRespuesta = ScsSRM.ConsultaGeneralSeguros(drProd("LlaveProducto")).Trim.Split("~")

                    If Mid(MiRespuesta(0), 1, 2) = "96" Or Mid(MiRespuesta(0), 1, 2) = "55" Or Mid(MiRespuesta(0), 1, 2) = "54" Then
                    Else
                        If MiRespuesta.Length > 1 Then
                            If MiRespuesta(3) = "02" Then
                                MiRespuesta = ScsSRM.DatosSeguroAutomotriz(drProd("LlaveProducto")).Trim.Split("~")

                                If Mid(MiRespuesta(0), 1, 2) = "96" Or Mid(MiRespuesta(0), 1, 2) = "55" Or Mid(MiRespuesta(0), 1, 2) = "54" Then
                                Else
                                    Dim rpNuevo As New DotNetResponse.SQLPersistence

                                    rpNuevo.StoredProcedure = "SP_PUT_PRUEBA"
                                    rpNuevo.AddParametro(dr(0))
                                    rpNuevo.AddParametro(drPrdCLT.Length)

                                    ExecuteSP(rpNuevo, True, False)

                                    rpNuevo = Nothing
                                End If
                            End If
                        End If
                    End If
                Next
            Next
        End If
    End Sub

    Private Sub BuscarSegurosByRUT(ByVal RUT As String)
        Dim CltSRM As SRM.CLT0 = New SRM.CLT0("U062")

        'L001
        Dim drPrdCLT() As DataRow = CltSRM.ObtenerProductosCliente(RUT).Select("LlaveProducto LIKE '120%'")

        If drPrdCLT.Length > 0 Then
            For Each dr As DataRow In drPrdCLT
                Dim ScsSRM As SRM.SCS0 = New SRM.SCS0("U067")
                Dim MiRespuesta() As String

                '44
                MiRespuesta = ScsSRM.ConsultaGeneralSeguros(dr("LlaveProducto")).Trim.Split("~")

                If Mid(MiRespuesta(0), 1, 2) = "96" Or Mid(MiRespuesta(0), 1, 2) = "55" Or Mid(MiRespuesta(0), 1, 2) = "54" Then
                Else
                    If MiRespuesta.Length > 1 Then
                        If MiRespuesta(3) = "02" Then
                            '    If ConfigurationManager.AppSettings("AplicarFiltroFecha") = "Y" Then
                            '        If Convert.ToDateTime(MiRespuesta(18)) = Now.Date.ToString Then
                            MiRespuesta = ScsSRM.DatosSeguroAutomotriz(dr("LlaveProducto")).Trim.Split("~")

                            If Mid(MiRespuesta(0), 1, 2) = "96" Or Mid(MiRespuesta(0), 1, 2) = "55" Or Mid(MiRespuesta(0), 1, 2) = "54" Then
                            Else
                                Dim drNuevaFila As DataRow

                                drNuevaFila = dtSegurosAuto.NewRow

                                drNuevaFila.Item(0) = dr("LlaveProducto") 'Número Seguro --> "100000055"
                                drNuevaFila.Item(1) = MiRespuesta(1).Replace("-", "") 'Patente --> "vf4567"
                                drNuevaFila.Item(2) = GetTipoVehiculoByCodigo(Mid(MiRespuesta(4), 1, 3)) 'Tipo Vehículo --> "Automovil"
                                drNuevaFila.Item(3) = MiRespuesta(12) 'Marca --> "Hyundai"
                                drNuevaFila.Item(4) = MiRespuesta(13) 'Modelo --> "Accent"
                                drNuevaFila.Item(5) = MiRespuesta(5) 'Año --> "2009"

                                dtSegurosAuto.Rows.Add(drNuevaFila)
                            End If
                            '        End If
                            '    End If
                        End If
                    End If
                End If
            Next
        End If
    End Sub

    Protected Function GetTipoVehiculoByCodigo(ByVal Codigo As String) As String
        Dim rp As New DotNetResponse.SQLPersistence
        Dim MiRespuesta As String = String.Empty

        rp.AddParametro(Codigo)

        rp.StoredProcedure = "SP_GET_TipoVehiculoByCodigo"

        ExecuteSP(rp, False, True)

        If Not rp.Errores And rp.TieneDatos Then
            MiRespuesta = rp.DtTable.Rows(0)(0)
        End If

        Return MiRespuesta
    End Function

    Protected Sub btnVolver_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnVolver.Click
        Session.Abandon()
        IrA("frmInicio.aspx")
    End Sub

    Protected Sub btnNuevaPatente_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnNuevaPatente.Click
        If (txtUsrMail.Text.Trim = "" Or txtDomMail.Text.Trim = "") Then
            MsgError("Ingrese dirección de correo electrónico.-")
        Else
            If (ValidarEmail(txtUsrMail.Text.Trim & "@" & txtDomMail.Text.Trim)) Then
                Email = txtUsrMail.Text.Trim & "@" & txtDomMail.Text.Trim

                IrA("frmNuevaPatente.aspx")
            Else
                MsgError("La dirección de correo electrónico ingresada no es válida.-")
            End If
        End If
    End Sub

    Protected Sub btnAceptar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnAceptar.Click
        If (SOAPGratis(RUTCliente, NroSeguro)) Then
            MsgError("Este seguro ya tiene asociado un SOAP Gratis.-")
            Exit Sub
        End If

        If (txtUsrMail.Text.Trim = "" Or txtDomMail.Text.Trim = "") Then
            MsgError("Ingrese dirección de correo electrónico.-")
        Else
            If (ValidarEmail(LCase(txtUsrMail.Text.Trim & "@" & txtDomMail.Text.Trim))) Then
                Email = LCase(txtUsrMail.Text.Trim & "@" & txtDomMail.Text.Trim)

                If NroSeguro <> "" Then
                    IrA("frmConfirmacion.aspx")
                Else
                    MsgError("Debe seleccionar un seguro.-")
                End If
            Else
                MsgError("La dirección de correo electrónico ingresada no es válida.-")
            End If
        End If
    End Sub

    Public Sub SelectOnlyOne(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim m_ClientID As String = ""
        Dim rb As New Anthem.RadioButton
        rb = CType(sender, Anthem.RadioButton)

        m_ClientID = rb.ClientID

        For Each i As DataGridItem In dgSeguros.Items
            rb = CType(i.FindControl("rbSeleccionar"), Anthem.RadioButton)
            rb.Checked = False
            rb.UpdateAfterCallBack = True
            If (m_ClientID = rb.ClientID) Then
                rb.Checked = True
                rb.UpdateAfterCallBack = True
            End If
        Next

        dgSeguros.SelectedIndex = DirectCast(sender.parent.parent, DataGridItem).ItemIndex
        dgSeguros.UpdateAfterCallBack = True

        Dim dgItem As DataGridItem = DirectCast(sender.parent.parent, DataGridItem)

        NroSeguro = dgItem.Cells(1).Text
        Patente = IIf(dgItem.Cells(2).Text.Trim.Replace("-", "") = "&nbsp;", Nothing, dgItem.Cells(2).Text.Trim.Replace("-", ""))
        TipoVehiculo = IIf(dgItem.Cells(3).Text.Trim = "&nbsp;", Nothing, dgItem.Cells(3).Text.Trim)
        Marca = dgItem.Cells(4).Text
        Modelo = dgItem.Cells(5).Text
        Anio = dgItem.Cells(6).Text
    End Sub

    Protected Sub LimpiarDatos()
        NroSeguro = ""
        Patente = ""
        TipoVehiculo = ""
        Marca = ""
        Modelo = ""
        Anio = ""
    End Sub

    Protected Sub dgSeguros_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgSeguros.ItemDataBound
        'If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
        '    If (SOAPGratis(RUTCliente, e.Item.DataItem("NroSeguro"))) Then
        '        e.Item.Enabled = False
        '    End If
        'End If
    End Sub

    Protected Function SOAPGratis(ByVal MiRUT As String, ByVal MiNroSeguro As String) As Boolean
        Dim rp As New DotNetResponse.SQLPersistence
        Dim MiRespuesta As Boolean

        rp.Parametro = New String() {MiRUT, MiNroSeguro}

        rp.StoredProcedure = "SP_GET_SOAP_GRATIS"

        ExecuteSP(rp, False, True)

        If Not rp.Errores Then
            If Not rp.DtTable Is Nothing Then
                MiRespuesta = rp.DtTable.Rows(0)(0)
            End If
        End If

        rp.Dispose()

        Return MiRespuesta
    End Function
End Class